package framework;


public abstract class Screen {
	protected final Engine engine;

	public Screen(Engine engine) {
		this.engine = engine;
	}
	/**
	 * Atualiza a lógica do jogo
	 * @param deltaTime tempo passado desde à última chamada a este método
	 */
	public abstract void update(float deltaTime);
	
	/**
	 * Renderiza um frame do jogo na tela
	 * @param deltaTime
	 */
	public abstract void render(float deltaTime);
	/**
	 * O jogo foi pausado
	 */
	public abstract void pause();

	/**
	 * 
	 */
	public abstract void resume();
	
	/**
	 * Este método deve liberar todos os recursos alocados pela instância da classe 
	 */
	public abstract void dispose();
}
